<<<<<<< .mine
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>prngd: H:/prngd_server/inc/Com_Interface.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">prngd
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_com___interface_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Com_Interface.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Com_Interface.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Last edited: 27.08.2014</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Author: David Noack</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#ifndef COM_INTERFACE_H_</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define COM_INTERFACE_H_</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;sys/socket.h&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;signal.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;MyThreadClass.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;Prngd.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define BUFFER_SIZE 256</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_com___interface.html">   31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_com___interface.html">Com_Interface</a>{</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">   36</a></span>&#160;        <a class="code" href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">Com_Interface</a>()</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        {</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;            <a class="code" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">prngd</a> = 0;</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;            <a class="code" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">sig</a> = 0;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;            <a class="code" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">worker_busy</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a> = 0;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            <a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;            <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a> = 0;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;            <a class="code" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">listen_thread_active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;            <a class="code" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">work_thread_active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        };</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">   49</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">~Com_Interface</a>(){};</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">   54</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">isActive</a>(){<span class="keywordflow">return</span> this-&gt;<a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a>;}</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">   59</a></span>&#160;        <a class="code" href="class_prngd.html">Prngd</a>* <a class="code" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">prngd</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">   62</a></span>&#160;        pthread_attr_t <a class="code" href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">attr_obj</a>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">   64</a></span>&#160;        sigset_t <a class="code" href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">sigmask</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">   66</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">sig</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">   68</a></span>&#160;        <span class="keyword">struct </span>sigaction <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">   71</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">listen_thread_active</a>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">   73</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">work_thread_active</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">   76</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">work_buffer</a>[BUFFER_SIZE];</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">   78</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">worker_busy</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">   80</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">   82</a></span>&#160;        <span class="keywordtype">char</span>** <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">   84</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a>;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#ace46e0a2fac1cef57aceaaaa16dcc2f5">thread_listen</a>(pthread_t parent_th) = 0;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a3b92b83ba2161bfdf973c7ab3c7d7b0e">thread_work</a>() = 0;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">   93</a></span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">dummy_handler</a>(<span class="keywordtype">int</span>){};</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">   98</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">configSignals</a>()</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        {</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            sigfillset(&amp;sigmask);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            pthread_sigmask(SIG_UNBLOCK, &amp;sigmask, (sigset_t*)0);</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>.sa_flags = 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>.sa_handler = <a class="code" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">dummy_handler</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            sigaction(SIGUSR1, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            sigaction(SIGUSR2, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            sigaction(SIGPOLL, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">  114</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">getParams</a>()</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        {</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="keywordtype">char</span>* temp = NULL;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordtype">char</span>* temp2 = NULL;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            temp = strchr(work_buffer,<span class="charliteral">&#39; &#39;</span>);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            <span class="keywordflow">while</span>(temp != NULL )</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            {</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keywordflow">if</span>(*(temp+1) != <span class="charliteral">&#39; &#39;</span> &amp;&amp; *(temp+1) != <span class="charliteral">&#39;\0&#39;</span>)</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                    param_count++;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                temp  = strchr(temp+1, <span class="charliteral">&#39; &#39;</span>);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            }</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            param_count+=2; <span class="comment">//one for the program name + one for the first part of the string</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            params = <span class="keyword">new</span> <span class="keywordtype">char</span>*[<a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>];</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            temp2 = strtok(work_buffer, <span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; temp2 != NULL; i++)</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;            {</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                params[i] = <span class="keyword">new</span> <span class="keywordtype">char</span>[strlen(temp2)+1];</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                strncpy(params[i], temp2, strlen(temp2)+1);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                temp2 = strtok(NULL, <span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        }</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">  146</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">deleteParams</a>()</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        {</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a> ; i++)</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            {</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keyword">delete</span> params[i];</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            <span class="keywordflow">if</span>(params != NULL)</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="keyword">delete</span> <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a>;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        }</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;};</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COM_INTERFACE_H_ */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_com___interface_html_ad6999d4955c55fbd93cd99d862f1e378"><div class="ttname"><a href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">Com_Interface::dummy_handler</a></div><div class="ttdeci">static void dummy_handler(int)</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:93</div></div>
<div class="ttc" id="class_com___interface_html_a065ac72fad16160e5eb3eb15d39c80ef"><div class="ttname"><a href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">Com_Interface::Com_Interface</a></div><div class="ttdeci">Com_Interface()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:36</div></div>
<div class="ttc" id="class_com___interface_html_a3967c39a22bb3f76fded0b57e50c2b78"><div class="ttname"><a href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">Com_Interface::work_buffer</a></div><div class="ttdeci">char work_buffer[BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:76</div></div>
<div class="ttc" id="class_com___interface_html_ae7857c92683530e3981d078f290f1826"><div class="ttname"><a href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">Com_Interface::sig</a></div><div class="ttdeci">int sig</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:66</div></div>
<div class="ttc" id="class_com___interface_html_a49d9e2b07056a8effe616bdc1addbce9"><div class="ttname"><a href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">Com_Interface::param_count</a></div><div class="ttdeci">int param_count</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:80</div></div>
<div class="ttc" id="class_com___interface_html_aeb7aa609943c932ca93b8b2ac134f9c2"><div class="ttname"><a href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">Com_Interface::prngd</a></div><div class="ttdeci">Prngd * prngd</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:59</div></div>
<div class="ttc" id="class_com___interface_html_abe0239dfa53ce449b1a68829c704494f"><div class="ttname"><a href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">Com_Interface::action</a></div><div class="ttdeci">struct sigaction action</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:68</div></div>
<div class="ttc" id="class_prngd_html"><div class="ttname"><a href="class_prngd.html">Prngd</a></div><div class="ttdoc">Can generate random bits with the help of a BBS-generator or a ...... </div><div class="ttdef"><b>Definition:</b> Prngd.h:48</div></div>
<div class="ttc" id="class_com___interface_html_abfde94bb290770ae09a732b3bd3f5753"><div class="ttname"><a href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">Com_Interface::~Com_Interface</a></div><div class="ttdeci">virtual ~Com_Interface()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:49</div></div>
<div class="ttc" id="class_com___interface_html_aebd609f7517d3cbbdff77bf1d3183dc0"><div class="ttname"><a href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">Com_Interface::worker_busy</a></div><div class="ttdeci">bool worker_busy</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:78</div></div>
<div class="ttc" id="class_com___interface_html_aa423be26761f884c8dc9ebc2a5bfa56d"><div class="ttname"><a href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">Com_Interface::getParams</a></div><div class="ttdeci">int getParams()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:114</div></div>
<div class="ttc" id="class_com___interface_html_a86dab5cff6981eba39b28688af72c464"><div class="ttname"><a href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">Com_Interface::deleteParams</a></div><div class="ttdeci">void deleteParams()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:146</div></div>
<div class="ttc" id="class_com___interface_html_a336a131126d70b29f57b00dd85ddbd17"><div class="ttname"><a href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">Com_Interface::configSignals</a></div><div class="ttdeci">void configSignals()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:98</div></div>
<div class="ttc" id="class_com___interface_html_a3b92b83ba2161bfdf973c7ab3c7d7b0e"><div class="ttname"><a href="class_com___interface.html#a3b92b83ba2161bfdf973c7ab3c7d7b0e">Com_Interface::thread_work</a></div><div class="ttdeci">virtual void thread_work()=0</div></div>
<div class="ttc" id="class_com___interface_html"><div class="ttname"><a href="class_com___interface.html">Com_Interface</a></div><div class="ttdoc">Interface class for all server-classes like Tcp_Server , Udp_Server etc. . </div><div class="ttdef"><b>Definition:</b> Com_Interface.h:31</div></div>
<div class="ttc" id="class_com___interface_html_ace46e0a2fac1cef57aceaaaa16dcc2f5"><div class="ttname"><a href="class_com___interface.html#ace46e0a2fac1cef57aceaaaa16dcc2f5">Com_Interface::thread_listen</a></div><div class="ttdeci">virtual void thread_listen(pthread_t parent_th)=0</div></div>
<div class="ttc" id="class_com___interface_html_a4c65929a9fd606c2db0fe63e62837940"><div class="ttname"><a href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">Com_Interface::listen_thread_active</a></div><div class="ttdeci">bool listen_thread_active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:71</div></div>
<div class="ttc" id="class_com___interface_html_a03383450084f47ce46bbd6eba7a2fe4b"><div class="ttname"><a href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">Com_Interface::sigmask</a></div><div class="ttdeci">sigset_t sigmask</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:64</div></div>
<div class="ttc" id="class_com___interface_html_a787baff1c3a135707d38612c24c091b1"><div class="ttname"><a href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">Com_Interface::work_thread_active</a></div><div class="ttdeci">bool work_thread_active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:73</div></div>
<div class="ttc" id="class_com___interface_html_a11f62625a965eb292768e464f44dd42e"><div class="ttname"><a href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">Com_Interface::active</a></div><div class="ttdeci">bool active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:84</div></div>
<div class="ttc" id="class_com___interface_html_a837a6d442933031ed87b08d484f5b4a7"><div class="ttname"><a href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">Com_Interface::params</a></div><div class="ttdeci">char ** params</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:82</div></div>
<div class="ttc" id="class_com___interface_html_af4b655641d2e003fa7595252e35a13f7"><div class="ttname"><a href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">Com_Interface::isActive</a></div><div class="ttdeci">bool isActive()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:54</div></div>
<div class="ttc" id="class_com___interface_html_aeb6626223a71a55bede469f632a3a80b"><div class="ttname"><a href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">Com_Interface::attr_obj</a></div><div class="ttdeci">pthread_attr_t attr_obj</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:62</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_84e7a5db4faa3bb3efa0834f14a17625.html">H:</a></li><li class="navelem"><a class="el" href="dir_47daf5b682bb20d31b5e64df701b3e23.html">prngd_server</a></li><li class="navelem"><a class="el" href="dir_83a04de6cb89da3aeafaea27fac18852.html">inc</a></li><li class="navelem"><b>Com_Interface.h</b></li>
    <li class="footer">Generated on Fri Aug 29 2014 14:14:52 for prngd by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.8 </li>
  </ul>
</div>
</body>
</html>
=======
<<<<<<< .mine
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>prngd: H:/prngd_server/inc/Com_Interface.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">prngd
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_com___interface_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Com_Interface.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Com_Interface.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Last edited: 27.08.2014</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Author: David Noack</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#ifndef COM_INTERFACE_H_</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define COM_INTERFACE_H_</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;sys/socket.h&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;signal.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;MyThreadClass.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;Prngd.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define BUFFER_SIZE 256</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_com___interface.html">   31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_com___interface.html">Com_Interface</a>{</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">   36</a></span>&#160;        <a class="code" href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">Com_Interface</a>()</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        {</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;            <a class="code" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">prngd</a> = 0;</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;            <a class="code" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">sig</a> = 0;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;            <a class="code" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">worker_busy</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a> = 0;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            <a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;            <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a> = 0;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;            <a class="code" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">listen_thread_active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;            <a class="code" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">work_thread_active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        };</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">   49</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">~Com_Interface</a>(){};</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">   54</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">isActive</a>(){<span class="keywordflow">return</span> this-&gt;<a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a>;}</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">   59</a></span>&#160;        <a class="code" href="class_prngd.html">Prngd</a>* <a class="code" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">prngd</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">   62</a></span>&#160;        pthread_attr_t <a class="code" href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">attr_obj</a>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">   64</a></span>&#160;        sigset_t <a class="code" href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">sigmask</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">   66</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">sig</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">   68</a></span>&#160;        <span class="keyword">struct </span>sigaction <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">   71</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">listen_thread_active</a>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">   73</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">work_thread_active</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">   76</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">work_buffer</a>[BUFFER_SIZE];</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">   78</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">worker_busy</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">   80</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">   82</a></span>&#160;        <span class="keywordtype">char</span>** <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">   84</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a>;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#ace46e0a2fac1cef57aceaaaa16dcc2f5">thread_listen</a>(pthread_t parent_th) = 0;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a3b92b83ba2161bfdf973c7ab3c7d7b0e">thread_work</a>() = 0;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">   93</a></span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">dummy_handler</a>(<span class="keywordtype">int</span>){};</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">   98</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">configSignals</a>()</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        {</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            sigfillset(&amp;sigmask);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            pthread_sigmask(SIG_UNBLOCK, &amp;sigmask, (sigset_t*)0);</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>.sa_flags = 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>.sa_handler = <a class="code" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">dummy_handler</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            sigaction(SIGUSR1, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            sigaction(SIGUSR2, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            sigaction(SIGPOLL, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">  114</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">getParams</a>()</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        {</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="keywordtype">char</span>* temp = NULL;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordtype">char</span>* temp2 = NULL;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            temp = strchr(work_buffer,<span class="charliteral">&#39; &#39;</span>);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            <span class="keywordflow">while</span>(temp != NULL )</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            {</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keywordflow">if</span>(*(temp+1) != <span class="charliteral">&#39; &#39;</span> &amp;&amp; *(temp+1) != <span class="charliteral">&#39;\0&#39;</span>)</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                    param_count++;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                temp  = strchr(temp+1, <span class="charliteral">&#39; &#39;</span>);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            }</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            param_count+=2; <span class="comment">//one for the program name + one for the first part of the string</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            params = <span class="keyword">new</span> <span class="keywordtype">char</span>*[<a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>];</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            temp2 = strtok(work_buffer, <span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; temp2 != NULL; i++)</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;            {</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                params[i] = <span class="keyword">new</span> <span class="keywordtype">char</span>[strlen(temp2)+1];</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                strncpy(params[i], temp2, strlen(temp2)+1);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                temp2 = strtok(NULL, <span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        }</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">  146</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">deleteParams</a>()</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        {</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a> ; i++)</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            {</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keyword">delete</span> params[i];</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            <span class="keywordflow">if</span>(params != NULL)</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="keyword">delete</span> <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a>;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        }</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;};</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COM_INTERFACE_H_ */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_com___interface_html_ad6999d4955c55fbd93cd99d862f1e378"><div class="ttname"><a href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">Com_Interface::dummy_handler</a></div><div class="ttdeci">static void dummy_handler(int)</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:93</div></div>
<div class="ttc" id="class_com___interface_html_a065ac72fad16160e5eb3eb15d39c80ef"><div class="ttname"><a href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">Com_Interface::Com_Interface</a></div><div class="ttdeci">Com_Interface()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:36</div></div>
<div class="ttc" id="class_com___interface_html_a3967c39a22bb3f76fded0b57e50c2b78"><div class="ttname"><a href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">Com_Interface::work_buffer</a></div><div class="ttdeci">char work_buffer[BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:76</div></div>
<div class="ttc" id="class_com___interface_html_ae7857c92683530e3981d078f290f1826"><div class="ttname"><a href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">Com_Interface::sig</a></div><div class="ttdeci">int sig</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:66</div></div>
<div class="ttc" id="class_com___interface_html_a49d9e2b07056a8effe616bdc1addbce9"><div class="ttname"><a href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">Com_Interface::param_count</a></div><div class="ttdeci">int param_count</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:80</div></div>
<div class="ttc" id="class_com___interface_html_aeb7aa609943c932ca93b8b2ac134f9c2"><div class="ttname"><a href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">Com_Interface::prngd</a></div><div class="ttdeci">Prngd * prngd</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:59</div></div>
<div class="ttc" id="class_com___interface_html_abe0239dfa53ce449b1a68829c704494f"><div class="ttname"><a href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">Com_Interface::action</a></div><div class="ttdeci">struct sigaction action</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:68</div></div>
<div class="ttc" id="class_prngd_html"><div class="ttname"><a href="class_prngd.html">Prngd</a></div><div class="ttdoc">Can generate random bits with the help of a BBS-generator or a ...... </div><div class="ttdef"><b>Definition:</b> Prngd.h:48</div></div>
<div class="ttc" id="class_com___interface_html_abfde94bb290770ae09a732b3bd3f5753"><div class="ttname"><a href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">Com_Interface::~Com_Interface</a></div><div class="ttdeci">virtual ~Com_Interface()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:49</div></div>
<div class="ttc" id="class_com___interface_html_aebd609f7517d3cbbdff77bf1d3183dc0"><div class="ttname"><a href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">Com_Interface::worker_busy</a></div><div class="ttdeci">bool worker_busy</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:78</div></div>
<div class="ttc" id="class_com___interface_html_aa423be26761f884c8dc9ebc2a5bfa56d"><div class="ttname"><a href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">Com_Interface::getParams</a></div><div class="ttdeci">int getParams()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:114</div></div>
<div class="ttc" id="class_com___interface_html_a86dab5cff6981eba39b28688af72c464"><div class="ttname"><a href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">Com_Interface::deleteParams</a></div><div class="ttdeci">void deleteParams()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:146</div></div>
<div class="ttc" id="class_com___interface_html_a336a131126d70b29f57b00dd85ddbd17"><div class="ttname"><a href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">Com_Interface::configSignals</a></div><div class="ttdeci">void configSignals()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:98</div></div>
<div class="ttc" id="class_com___interface_html_a3b92b83ba2161bfdf973c7ab3c7d7b0e"><div class="ttname"><a href="class_com___interface.html#a3b92b83ba2161bfdf973c7ab3c7d7b0e">Com_Interface::thread_work</a></div><div class="ttdeci">virtual void thread_work()=0</div></div>
<div class="ttc" id="class_com___interface_html"><div class="ttname"><a href="class_com___interface.html">Com_Interface</a></div><div class="ttdoc">Interface class for all server-classes like Tcp_Server , Udp_Server etc. . </div><div class="ttdef"><b>Definition:</b> Com_Interface.h:31</div></div>
<div class="ttc" id="class_com___interface_html_ace46e0a2fac1cef57aceaaaa16dcc2f5"><div class="ttname"><a href="class_com___interface.html#ace46e0a2fac1cef57aceaaaa16dcc2f5">Com_Interface::thread_listen</a></div><div class="ttdeci">virtual void thread_listen(pthread_t parent_th)=0</div></div>
<div class="ttc" id="class_com___interface_html_a4c65929a9fd606c2db0fe63e62837940"><div class="ttname"><a href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">Com_Interface::listen_thread_active</a></div><div class="ttdeci">bool listen_thread_active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:71</div></div>
<div class="ttc" id="class_com___interface_html_a03383450084f47ce46bbd6eba7a2fe4b"><div class="ttname"><a href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">Com_Interface::sigmask</a></div><div class="ttdeci">sigset_t sigmask</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:64</div></div>
<div class="ttc" id="class_com___interface_html_a787baff1c3a135707d38612c24c091b1"><div class="ttname"><a href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">Com_Interface::work_thread_active</a></div><div class="ttdeci">bool work_thread_active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:73</div></div>
<div class="ttc" id="class_com___interface_html_a11f62625a965eb292768e464f44dd42e"><div class="ttname"><a href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">Com_Interface::active</a></div><div class="ttdeci">bool active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:84</div></div>
<div class="ttc" id="class_com___interface_html_a837a6d442933031ed87b08d484f5b4a7"><div class="ttname"><a href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">Com_Interface::params</a></div><div class="ttdeci">char ** params</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:82</div></div>
<div class="ttc" id="class_com___interface_html_af4b655641d2e003fa7595252e35a13f7"><div class="ttname"><a href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">Com_Interface::isActive</a></div><div class="ttdeci">bool isActive()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:54</div></div>
<div class="ttc" id="class_com___interface_html_aeb6626223a71a55bede469f632a3a80b"><div class="ttname"><a href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">Com_Interface::attr_obj</a></div><div class="ttdeci">pthread_attr_t attr_obj</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:62</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_84e7a5db4faa3bb3efa0834f14a17625.html">H:</a></li><li class="navelem"><a class="el" href="dir_47daf5b682bb20d31b5e64df701b3e23.html">prngd_server</a></li><li class="navelem"><a class="el" href="dir_83a04de6cb89da3aeafaea27fac18852.html">inc</a></li><li class="navelem"><b>Com_Interface.h</b></li>
    <li class="footer">Generated on Fri Aug 29 2014 14:14:52 for prngd by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.8 </li>
  </ul>
</div>
</body>
</html>
=======
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>prngd: H:/prngd_server/inc/Com_Interface.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">prngd
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_com___interface_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Com_Interface.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Com_Interface.h</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Last edited: 27.08.2014</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Author: David Noack</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#ifndef COM_INTERFACE_H_</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#define COM_INTERFACE_H_</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &lt;sys/socket.h&gt;</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &lt;stdio.h&gt;</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#include &quot;signal.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &quot;MyThreadClass.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;Prngd.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#define BUFFER_SIZE 256</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_com___interface.html">   31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_com___interface.html">Com_Interface</a>{</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">public</span>:</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">   36</a></span>&#160;        <a class="code" href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">Com_Interface</a>()</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        {</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;            <a class="code" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">prngd</a> = 0;</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;            <a class="code" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">sig</a> = 0;</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;            <a class="code" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">worker_busy</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a> = 0;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;            <a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;            <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a> = 0;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;            <a class="code" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">listen_thread_active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;            <a class="code" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">work_thread_active</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        };</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">   49</a></span>&#160;        <span class="keyword">virtual</span> <a class="code" href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">~Com_Interface</a>(){};</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">   54</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">isActive</a>(){<span class="keywordflow">return</span> this-&gt;<a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a>;}</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">   59</a></span>&#160;        <a class="code" href="class_prngd.html">Prngd</a>* <a class="code" href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">prngd</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">   62</a></span>&#160;        pthread_attr_t <a class="code" href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">attr_obj</a>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">   64</a></span>&#160;        sigset_t <a class="code" href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">sigmask</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">   66</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">sig</a>;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">   68</a></span>&#160;        <span class="keyword">struct </span>sigaction <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>;</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">   71</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">listen_thread_active</a>;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">   73</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">work_thread_active</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">   76</a></span>&#160;        <span class="keywordtype">char</span> <a class="code" href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">work_buffer</a>[BUFFER_SIZE];</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">   78</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">worker_busy</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">   80</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">   82</a></span>&#160;        <span class="keywordtype">char</span>** <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">   84</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">active</a>;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#ace46e0a2fac1cef57aceaaaa16dcc2f5">thread_listen</a>(pthread_t parent_th) = 0;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a3b92b83ba2161bfdf973c7ab3c7d7b0e">thread_work</a>() = 0;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">   93</a></span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">dummy_handler</a>(<span class="keywordtype">int</span>){};</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">   98</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">configSignals</a>()</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        {</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            sigfillset(&amp;sigmask);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            pthread_sigmask(SIG_UNBLOCK, &amp;sigmask, (sigset_t*)0);</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;            <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>.sa_flags = 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            <a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>.sa_handler = <a class="code" href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">dummy_handler</a>;</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;            sigaction(SIGUSR1, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            sigaction(SIGUSR2, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            sigaction(SIGPOLL, &amp;<a class="code" href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">action</a>, (<span class="keyword">struct</span> sigaction*)0);</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        }</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">  114</a></span>&#160;        <span class="keywordtype">int</span> <a class="code" href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">getParams</a>()</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        {</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <span class="keywordtype">char</span>* temp = NULL;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordtype">char</span>* temp2 = NULL;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            temp = strchr(work_buffer,<span class="charliteral">&#39; &#39;</span>);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            <span class="keywordflow">while</span>(temp != NULL )</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            {</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                <span class="keywordflow">if</span>(*(temp+1) != <span class="charliteral">&#39; &#39;</span> &amp;&amp; *(temp+1) != <span class="charliteral">&#39;\0&#39;</span>)</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;                    param_count++;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                temp  = strchr(temp+1, <span class="charliteral">&#39; &#39;</span>);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            }</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            param_count+=2; <span class="comment">//one for the program name + one for the first part of the string</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            params = <span class="keyword">new</span> <span class="keywordtype">char</span>*[<a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>];</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            temp2 = strtok(work_buffer, <span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; temp2 != NULL; i++)</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;            {</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                params[i] = <span class="keyword">new</span> <span class="keywordtype">char</span>[strlen(temp2)+1];</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                strncpy(params[i], temp2, strlen(temp2)+1);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                temp2 = strtok(NULL, <span class="stringliteral">&quot; &quot;</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;            }</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        }</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">  146</a></span>&#160;        <span class="keywordtype">void</span> <a class="code" href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">deleteParams</a>()</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        {</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; <a class="code" href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">param_count</a> ; i++)</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;            {</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;                <span class="keyword">delete</span> params[i];</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            }</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            <span class="keywordflow">if</span>(params != NULL)</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="keyword">delete</span> <a class="code" href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">params</a>;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        }</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;};</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* COM_INTERFACE_H_ */</span><span class="preprocessor"></span></div>
<div class="ttc" id="class_com___interface_html_ad6999d4955c55fbd93cd99d862f1e378"><div class="ttname"><a href="class_com___interface.html#ad6999d4955c55fbd93cd99d862f1e378">Com_Interface::dummy_handler</a></div><div class="ttdeci">static void dummy_handler(int)</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:93</div></div>
<div class="ttc" id="class_com___interface_html_a065ac72fad16160e5eb3eb15d39c80ef"><div class="ttname"><a href="class_com___interface.html#a065ac72fad16160e5eb3eb15d39c80ef">Com_Interface::Com_Interface</a></div><div class="ttdeci">Com_Interface()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:36</div></div>
<div class="ttc" id="class_com___interface_html_a3967c39a22bb3f76fded0b57e50c2b78"><div class="ttname"><a href="class_com___interface.html#a3967c39a22bb3f76fded0b57e50c2b78">Com_Interface::work_buffer</a></div><div class="ttdeci">char work_buffer[BUFFER_SIZE]</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:76</div></div>
<div class="ttc" id="class_com___interface_html_ae7857c92683530e3981d078f290f1826"><div class="ttname"><a href="class_com___interface.html#ae7857c92683530e3981d078f290f1826">Com_Interface::sig</a></div><div class="ttdeci">int sig</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:66</div></div>
<div class="ttc" id="class_com___interface_html_a49d9e2b07056a8effe616bdc1addbce9"><div class="ttname"><a href="class_com___interface.html#a49d9e2b07056a8effe616bdc1addbce9">Com_Interface::param_count</a></div><div class="ttdeci">int param_count</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:80</div></div>
<div class="ttc" id="class_com___interface_html_aeb7aa609943c932ca93b8b2ac134f9c2"><div class="ttname"><a href="class_com___interface.html#aeb7aa609943c932ca93b8b2ac134f9c2">Com_Interface::prngd</a></div><div class="ttdeci">Prngd * prngd</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:59</div></div>
<div class="ttc" id="class_com___interface_html_abe0239dfa53ce449b1a68829c704494f"><div class="ttname"><a href="class_com___interface.html#abe0239dfa53ce449b1a68829c704494f">Com_Interface::action</a></div><div class="ttdeci">struct sigaction action</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:68</div></div>
<div class="ttc" id="class_prngd_html"><div class="ttname"><a href="class_prngd.html">Prngd</a></div><div class="ttdoc">Can generate random bits with the help of a BBS-generator or a ...... </div><div class="ttdef"><b>Definition:</b> Prngd.h:48</div></div>
<div class="ttc" id="class_com___interface_html_abfde94bb290770ae09a732b3bd3f5753"><div class="ttname"><a href="class_com___interface.html#abfde94bb290770ae09a732b3bd3f5753">Com_Interface::~Com_Interface</a></div><div class="ttdeci">virtual ~Com_Interface()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:49</div></div>
<div class="ttc" id="class_com___interface_html_aebd609f7517d3cbbdff77bf1d3183dc0"><div class="ttname"><a href="class_com___interface.html#aebd609f7517d3cbbdff77bf1d3183dc0">Com_Interface::worker_busy</a></div><div class="ttdeci">bool worker_busy</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:78</div></div>
<div class="ttc" id="class_com___interface_html_aa423be26761f884c8dc9ebc2a5bfa56d"><div class="ttname"><a href="class_com___interface.html#aa423be26761f884c8dc9ebc2a5bfa56d">Com_Interface::getParams</a></div><div class="ttdeci">int getParams()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:114</div></div>
<div class="ttc" id="class_com___interface_html_a86dab5cff6981eba39b28688af72c464"><div class="ttname"><a href="class_com___interface.html#a86dab5cff6981eba39b28688af72c464">Com_Interface::deleteParams</a></div><div class="ttdeci">void deleteParams()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:146</div></div>
<div class="ttc" id="class_com___interface_html_a336a131126d70b29f57b00dd85ddbd17"><div class="ttname"><a href="class_com___interface.html#a336a131126d70b29f57b00dd85ddbd17">Com_Interface::configSignals</a></div><div class="ttdeci">void configSignals()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:98</div></div>
<div class="ttc" id="class_com___interface_html_a3b92b83ba2161bfdf973c7ab3c7d7b0e"><div class="ttname"><a href="class_com___interface.html#a3b92b83ba2161bfdf973c7ab3c7d7b0e">Com_Interface::thread_work</a></div><div class="ttdeci">virtual void thread_work()=0</div></div>
<div class="ttc" id="class_com___interface_html"><div class="ttname"><a href="class_com___interface.html">Com_Interface</a></div><div class="ttdoc">Interface class for all server-classes like Tcp_Server , Udp_Server etc. . </div><div class="ttdef"><b>Definition:</b> Com_Interface.h:31</div></div>
<div class="ttc" id="class_com___interface_html_ace46e0a2fac1cef57aceaaaa16dcc2f5"><div class="ttname"><a href="class_com___interface.html#ace46e0a2fac1cef57aceaaaa16dcc2f5">Com_Interface::thread_listen</a></div><div class="ttdeci">virtual void thread_listen(pthread_t parent_th)=0</div></div>
<div class="ttc" id="class_com___interface_html_a4c65929a9fd606c2db0fe63e62837940"><div class="ttname"><a href="class_com___interface.html#a4c65929a9fd606c2db0fe63e62837940">Com_Interface::listen_thread_active</a></div><div class="ttdeci">bool listen_thread_active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:71</div></div>
<div class="ttc" id="class_com___interface_html_a03383450084f47ce46bbd6eba7a2fe4b"><div class="ttname"><a href="class_com___interface.html#a03383450084f47ce46bbd6eba7a2fe4b">Com_Interface::sigmask</a></div><div class="ttdeci">sigset_t sigmask</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:64</div></div>
<div class="ttc" id="class_com___interface_html_a787baff1c3a135707d38612c24c091b1"><div class="ttname"><a href="class_com___interface.html#a787baff1c3a135707d38612c24c091b1">Com_Interface::work_thread_active</a></div><div class="ttdeci">bool work_thread_active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:73</div></div>
<div class="ttc" id="class_com___interface_html_a11f62625a965eb292768e464f44dd42e"><div class="ttname"><a href="class_com___interface.html#a11f62625a965eb292768e464f44dd42e">Com_Interface::active</a></div><div class="ttdeci">bool active</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:84</div></div>
<div class="ttc" id="class_com___interface_html_a837a6d442933031ed87b08d484f5b4a7"><div class="ttname"><a href="class_com___interface.html#a837a6d442933031ed87b08d484f5b4a7">Com_Interface::params</a></div><div class="ttdeci">char ** params</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:82</div></div>
<div class="ttc" id="class_com___interface_html_af4b655641d2e003fa7595252e35a13f7"><div class="ttname"><a href="class_com___interface.html#af4b655641d2e003fa7595252e35a13f7">Com_Interface::isActive</a></div><div class="ttdeci">bool isActive()</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:54</div></div>
<div class="ttc" id="class_com___interface_html_aeb6626223a71a55bede469f632a3a80b"><div class="ttname"><a href="class_com___interface.html#aeb6626223a71a55bede469f632a3a80b">Com_Interface::attr_obj</a></div><div class="ttdeci">pthread_attr_t attr_obj</div><div class="ttdef"><b>Definition:</b> Com_Interface.h:62</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_84e7a5db4faa3bb3efa0834f14a17625.html">H:</a></li><li class="navelem"><a class="el" href="dir_47daf5b682bb20d31b5e64df701b3e23.html">prngd_server</a></li><li class="navelem"><a class="el" href="dir_83a04de6cb89da3aeafaea27fac18852.html">inc</a></li><li class="navelem"><b>Com_Interface.h</b></li>
    <li class="footer">Generated on Sun Aug 31 2014 18:01:31 for prngd by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.8 </li>
  </ul>
</div>
</body>
</html>
>>>>>>> .r39
>>>>>>> .r46
